/*
 * Copyright (c) 2024-2025 Huawei Device Co., Ltd.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
const fs = require('fs')
const path = require('path')

function findFiles(dir, extension, fileList = []) {
  const files = fs.readdirSync(dir)
  for (const file of files) {
    const filePath = path.join(dir, file)
    const stat = fs.statSync(filePath)
    if (stat.isDirectory()) {
      findFiles(filePath, extension, fileList)
    } else if (path.extname(filePath) === extension) {
      fileList.push(filePath)
    }
  }

  return fileList
}

const targetDir = process.argv[2] ?? "../entry/src/main/ets"
const etsFiles = findFiles(targetDir, '.ets')

for (const file of etsFiles) {
  let content = fs.readFileSync(file, 'utf8')
  if (!content.startsWith("'use static'\n")) {
    content = "'use static'\n" + content
    fs.writeFileSync(file, content, 'utf8')
  }
}
console.info(`Added 'use static' to .ets files`)
